
from rest_framework.permissions import BasePermission # 基本权限类
from django.contrib.auth.models import Group # 导入组  组、权限、用户都在django.contrib.auth.models
# 要有老师的权限



class TeachPermissions(BasePermission): # 继承
    '''
    只有老师可以做的权限
    '''
    # 方法名固定的
    def has_permission(self, request, view):
        user = request.user # 获取用户
        # 拿到老师组
        group = Group.objects.get(name='teacher') # 注意:要于创建的组名要一致
        # 获取用户所在的组
        groups = user.groups.all()
        return bool(user.is_superuser or group in groups)  # 判断该用户是否有该组的权限 是则返回True 不是则返回False


# 只能查看各自详情信息权限
class ValidUser(BasePermission):
    '''
    当前登录用户只看查看自己的相关信息
    '''
    def has_permission(self, request, view):
        user = request.user # 获取当前登录用户的id
        # 当前登录用户的id:user.id ,想要操作的id：int(view.kwargs['pk'])
        return user.id == int(view.kwargs['pk'])

